System and method for obtaining user input with magnetic sensing

ABSTRACT

Methods and systems for providing computer implemented services using user input are disclosed. To obtain the user input, a passive human interface device may be used. The human interface device may include a magnet that may produce a magnetic field used to discern the user input. The magnet may be mechanically coupled to actuatable portions of the human interface device thereby facilitating both translation and rotation of the magnet responsive to actuations by a user. The translation and rotation of the magnet may be sensed and used to identify user input provided by the user.

FIELD

Embodiments disclosed herein relate generally to user input in computingsystems. More particularly, embodiments disclosed herein relate tosystems and methods to obtain user input.

BACKGROUND

Computing devices may provide computer implemented services. Thecomputer implemented services may be used by users of the computingdevices and/or devices operably connected to the computing devices. Thecomputer implemented services may be performed using input from users.For example, users of computing devices may provide input as part of thecomputer implemented services.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments disclosed herein are illustrated by way of example and notlimitation in the figures of the accompanying drawings in which likereferences indicate similar elements.

FIG. 1 shows a block diagram illustrating a system in accordance with anembodiment.

FIG. 2A shows a diagram illustrating a human interface device and asensing system in accordance with an embodiment.

FIGS. 2B-2C show diagrams illustrating field sensing in accordance withan embodiment.

FIG. 2D shows a diagram of a portion of a human interface device inaccordance with an embodiment.

FIG. 2E shows a first top view diagram of a human interface device inaccordance with an embodiment.

FIGS. 2F-2I show cross section diagrams of a human interface device inaccordance with an embodiment.

FIG. 2J shows a second top view diagram of a human interface device inaccordance with an embodiment.

FIGS. 2K-2O show cross section diagrams of a human interface device inaccordance with an embodiment.

FIG. 3 shows a flow diagram illustrating a method of obtaining userinput and providing computer implemented services in accordance with anembodiment.

FIG. 4 shows a block diagram illustrating a data processing system inaccordance with an embodiment.

DETAILED DESCRIPTION

Various embodiments will be described with reference to detailsdiscussed below, and the accompanying drawings will illustrate thevarious embodiments. The following description and drawings areillustrative and are not to be construed as limiting. Numerous specificdetails are described to provide a thorough understanding of variousembodiments. However, in certain instances, well-known or conventionaldetails are not described in order to provide a concise discussion ofembodiments disclosed herein.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin conjunction with the embodiment can be included in at least oneembodiment. The appearances of the phrases “in one embodiment” and “anembodiment” in various places in the specification do not necessarilyall refer to the same embodiment.

References to an “operable connection” or “operably connected” meansthat a particular device is able to communicate with one or more otherdevices. The devices themselves may be directly connected to one anotheror may be indirectly connected to one another through any number ofintermediary devices, such as in a network topology.

In general, embodiments disclosed herein relate to methods and systemsfor providing computer implemented services. To provide the computerimplemented services, user input may be obtained.

To obtain the user input, a human interface device may be used. Thehuman interface device may be actuated by a user, and the actuations maybe translated into magnetic fields detectable by a sensing system. Thesensing system may sense the magnetic fields and obtain informationreflecting changes in the position and/or orientation of a magnet of thehuman interface device that generates the magnetic fields. Thus,information reflecting actuations of the human interface device by theuser may be encoded in the magnetic fields and may be sensed.

The obtain information may then be used to identify, for example, userinput provided by the user. For example, the information regardingchanges in the position and/or orientation of the magnet may betranslated into user input. The user input may then be used to drivecomputer implemented services.

For example, the user input may be provided by the user to activatecertain functionalities, change functionalities, terminatefunctionalities, and/or invoke desired activities by a data processingsystem.

By using a magnet and mechanical linkage to the magnet, the humaninterface device may not need to be powered, may include fewercomponents thereby reducing the likelihood of component failures, may bemade lighter/smaller thereby reducing loads placed on user of user inputdevices, etc.

By doing so, a system in accordance with embodiments disclosed hereinmay have improved portability and usability when compared to other typesof devices used to obtain user input that may be powered. Thus,embodiment disclosed herein may address, among others, the technicalchallenge of loads placed on users during acquisition of user input andmechanical or electrical failure of devices tasked with obtaining userinput.

In an embodiment, a human interface device is provided. The humaninterface device may include a body movable though application of forceby a user; a magnet positioned with the body, the magnet emanating amagnetic field distribution that extends into an ambient environmentproximate to the human interface device; a button mechanically coupledto the magnet via a first mechanical linkage, the first mechanicallinkage being adapted to rotate the magnet in a first plane when thebutton is actuated by the user; and a scroll control mechanicallycoupled to the magnet via second mechanical linkage, the secondmechanical linkage being adapted to rotate the magnet in a second planewhen the scroll control is actuated by the user.

The human interface device may be unpowered.

The first plane and the second plane may not be coplanar or parallel.The first plane may be substantially perpendicular (e.g., within 5° ofbeing perpendicular) to the second plane. The first plane may besubstantially orthogonal (e.g., within 5° of being orthogonal) to thesecond plane.

The first mechanical linkage may include a support element extendingfrom the button to the body, the support element suspending the buttonabove the body by a first distance, and the support element flexing whenthe button is actuated by the user to rotate the magnet in the firstplane.

The second mechanical linkage may include a cradle that houses themagnet; and a suspension element extending from the button toward thebody by a second distance that is smaller than the first distance andpositioned to suspend the cradle between the button and body.

The scroll control may be directly attached to the cradle, and thesuspension element flexing when the scroll control is actuated by theuser to rotate the magnet in the second plane.

The human interface device may also include a second button mechanicallycoupled to the magnet via the second mechanical linkage, the firstmechanical linkage rotating the magnet in a first direction when thebutton is actuated and a second direction when the second button isactuated. The first mechanical linkage may be further adapted to returnthe magnet to a predetermined position while neither of the button andthe second button are actuated.

The second mechanical linkage may be further adapted to return themagnet to the predetermined position while the scroll control is notactuated.

The button, the scroll control, and the second button may be positionedon a top surface of the human interface device.

The suspension element may be adapted to flex to a first degree, thesupport element is adapted to flex to a second degree, and the firstdegree is larger than the second degree.

The human interface device may further include an actuation elementextending from the button toward the body; and a sensory feedbackelement positioned between the body and the actuation element, theactuation element adapted to: generate an auditory signal and/or hapticwhen suspension element flexes to the first degree, and limit an extentof rotation of the magnet in the first plane.

The extent of rotation of the magnet in the second plane may be limitedby an extent to which the scroll control is exposed above the button andthe second button.

In an embodiment, a user input system is provided. The user input systemmay include a human interface device as discussed above and a sensingsystem adapted to measure the magnetic field emanating from the magnet.

In an embodiment, a data processing system is provided. The dataprocessing system may include a user input system as discussed above, aprocessor, and a memory coupled to the processor to store instructions,which when executed by the processor, cause the processor to performoperations for obtaining user input using data obtained from the sensingsystem.

In an embodiment, a non-transitory media is provided. The non-transitorymedia may include instructions that when executed by a processoroperations for obtaining user input using data obtained from the sensingsystem, as discussed above.

Turning to FIG. 1 , a block diagram illustrating a system in accordancewith an embodiment is shown. The system shown in FIG. 1 may providecomputer implemented services. The computer implemented services mayinclude any type and quantity of computer implemented services. Forexample, the computer implemented services may include data storageservices, instant messaging services, database services, and/or anyother type of service that may be implemented with a computing device.

To provide the computer implemented services, user input may beobtained. The user input may indicate, for example, how the computerimplemented services are to be provided. The user input may include anytype and quantity of information.

To obtain the user input, a user may perform physical actions such as,for example, pressing buttons, moving structures, etc. These physicalactions may be sensed by various devices, and the sensing may beinterpreted (e.g., translated) into the user input (e.g., data).

However, sensing physical actions by a user may involve use of sensorsand/or devices that may consume power. The weight of the devices andforces applied by sources of the consumed power (e.g., batteries, cordsto power supplies, etc.) may place a load (e.g., mechanical) on the userattempting to perform the physical actions. The mechanical load mayfatigue the user, reduce the portability of the devices (e.g., mouses),and/or may be undesirable for other reasons.

In general, embodiments disclosed herein may provide methods, systems,and/or devices for obtaining user input and/or using the obtained userinput to provide computer implemented services. To provide the computerimplemented services, a system may include data processing system 100.

Data processing system 100 may include hardware components usable toprovide the computer implemented services. For example, data processingsystem 100 may be implemented using a computing device such as a laptopcomputer, desktop computer, portable computer, and/or other types ofcomputing devices.

Data processing system 100 may host software that may use user input toprovide the computer implemented services. For example, the software mayprovide user input fields and/or other elements through which the usermay provide information to manage and/or use the computer implementedservices provided by data processing system 100.

To obtain the information from the user, data processing system 100 mayobtain signals and/or data from sensing system 102 (e.g., via operableconnection 106). Data processing system 100 may interpret (e.g.,translate) the signals (e.g., may be analog, data processing system 100may include an analog to digital converter) and/or data (e.g., digitaldata) to obtain the user input.

Sensing system 102 may track (e.g., by sensing 108) and/or provideinformation regarding tracking of human interface device 104, andprovide the signals and/or data to data processing system 100. A usermay physically interact with human interface device 104, therebyallowing the signals and/or data provided by sensing system 102 toinclude information regarding the physical actions of the user.

For example, if a user moves human interface device 104, sensing system102 may track the change in position and/or motion of human interfacedevice 104 and provide signals and/or data reflecting the changes inposition and/or motion. Similarly, if a user actuates an actuatableportion (e.g., buttons) of human interface device, sensing system 102may track the actuation of the actuatable portion and provide signalsand/or data reflecting the actuation.

To track human interface device 104, sensing system 102 may include oneor more sensors that sense a magnetic field emanating from humaninterface device 104. The sensors may use the sensed magnetic field totrack a location (absolute or relative) and orientation (absolute orrelative) of a magnet embedded in human interface device 104. Thesensors may generate the signals and/or data provided by sensing system102 to data processing system 100. The sensors may sense the magnitudeand/or direction of the magnetic field that passes proximate to eachsensor. By knowing the relative placements of the sensors with respectto one another, the position and/or orientation of the magnet may beknown (e.g., the magnetic field may be treated as emanating from amagnet with known dimensions and/or strength).

Sensing system 102 may also include, for example, analog to digitalconverters, digital signal processing devices or other signal processingdevices, and/or other devices for generating the signals and/or databased on information obtained via the sensors.

Human interface device 104 may be implemented with a physical devicethat a user may actuate in one or more ways. For example, humaninterface device 104 may (i) be moveable, (ii) may include one or morebuttons, (iii) may include one or more scroll controls, and/or (iv) mayinclude other actuatable elements. Actuating human interface device 104may change the orientation and/or position of the magnet with respect tothe sensors of sensing system 102.

For example, when human interface device 104 is move away from sensingsystem 102, the strength of the magnetic field emanating from the magnetas sensed by sensors of sensing system 102 may decrease. Similarly, whenbuttons or other actuatable elements of human interface device 104 areactuated, the magnet may be rotated (e.g., in one or more planes)thereby changing the direction of the magnetic field sensed by sensorsof sensing system 102. Refer to FIGS. 2A-2C for additional detailsregarding sensing of human interface device 104.

Human interface device 104 may be a passive device. For example, humaninterface device 104 may not consume power, include batteries orsensors, etc. Consequently, human interface device 104 may be of smallersize, lower weight, and/or may provide other advantages when compared toactive devices such as a computer mouse. Refer to FIGS. 2C-2O foradditional details regarding human interface device 104.

Data processing system 100 may perform a lookup or other type ofoperation to translate the signals and/or data from sensing system 102into user input. Once obtained, the user input may be used to drivedownstream processes.

When providing its functionality, data processing system 100 may performall, or a portion, of the method illustrated in FIG. 3 .

Data processing system 100 may be implemented using a computing device(also referred to as a data processing system) such as a host or aserver, a personal computer (e.g., desktops, laptops, and tablets), a“thin” client, a personal digital assistant (PDA), a Web enabledappliance, a mobile phone (e.g., Smartphone), an embedded system, localcontrollers, an edge node, and/or any other type of data processingdevice or system. For additional details regarding computing devices,refer to FIG. 4 .

Any of the components illustrated in FIG. 1 may be operably connected toeach other (and/or components not illustrated). For example, sensingsystem 102 may be operably connected to data processing system 100 via awired (e.g., USB) or wireless connection. However, in some embodiment,human interface device 104 may not be operably connected to other device(e.g., may be a passive device), but may be sensed by sensing system 102via sensing 108. For example, during sensing 108, a static magneticfield emanating from human interface device 104 may be sensed by sensingsystem 102.

While illustrated in FIG. 1 as included a limited number of specificcomponents, a system in accordance with an embodiment may include fewer,additional, and/or different components than those illustrated therein.

To further clarify embodiments disclosed herein, diagrams illustratingsensing of human interface device 104 in accordance with an embodimentare shown in FIGS. 2A-2C.

Turning to FIG. 2A, an isometric diagram of human interface device 104and sensing system 102 in accordance with an embodiment is shown.

To obtain user input, human interface device 104 may include body 220,and a number of actuatable elements (e.g., 222-226). Body 220 may beimplemented with a structure upon which other elements may be affixed.For example, body 220 may be implemented with a plastic injection moldedcomponent or other structure. Body 220 may have a flat bottom that mayallow human interface device 104 to slide along a surface on which it ispositioned. Thus, one form of actuation of human interface device 104may be for a person to grip body 220 and apply for to it to move italong the surface (thereby repositioning it with respect to sensingelements of sensing system 102, discussed below).

To obtain user input (in addition to via repositioning), the actuatableelements may include buttons 224-226 and a scroll control 226.Generally, the actuatable element may be positioned on a top surface ofhuman interface device 104, but may be positioned elsewhere (e.g., onside surfaces). The actuatable elements may be actuatable by a personthrough application of force. Refer to FIGS. 2H-2I, 2M-2O for additionaldetails regarding actuation of the actuatable elements by application offorce.

Buttons 222-224 may be implemented, for example, with surfaces that maybe actuated through application of pressure downward. Application of thepressure may cause the button to move towards body 220. A returnmechanism may return the buttons to a resting position while force isnot applied to it.

Likewise, scroll control 226 may be implemented, for example, with astructural protrusion that may be actuated through application ofpressure downward. In contrast to buttons 222-224, scroll control 226may be actuated differently through application of pressure to differentportions of scroll control 226. A return mechanism may return the scrollcontrol 226 to a resting position while force is not applied to it.

Application of force to body 220 may reposition human interface device104 with respect to sensing elements of sensing system 102. In contrast,application of force to the actuation elements may change an orientationof a magnet embedded inside of body 220 with respect to the sensingelements. For example, application of force to the respective buttons222-224 may rotate the magnet forwards or backwards, respectively, in afirst plane. Likewise, application of force to scroll control 226 mayrotate the magnet forwards or backwards in a second plan, depending onwhere force is applied to scroll control 226. The rotation and/orrepositioning of the magnet may modify the magnetic field applied to thesensing elements of sensing system 102. Refer to FIGS. 2B-2C foradditional details regarding the magnetic field emanating from humaninterface device 104. Refer to FIG. 2D for additional details regardingthe magnet embedded in human interface device 104.

Like body 220, the actuatable elements may generally be formed fromplastic injection molded or other types of plastic and/or molded parts.

To obtain user input, sensing system 102 may include any number ofsensing elements (e.g., 202). The sensing elements may be sensors thatmonitor a magnitude and direction of a magnetic field, and generatesignals or data to reflect these quantities. While not shown, sensingsystem 102 may include a signal processing chain (e.g., any number ofsignal conditioning and processing devices) that may condition andprocess the signals generated by the sensing elements to obtaininformation regarding the location and/or orientation of the magnetembedded in human interface device 104.

In FIG. 2A, sensing system 102 is illustrated in the form of a pad orother structure upon which human interface device 104 may be positioned(the dashed line to the top left of the drawing indicates that thestructure may continue on beyond that which is explicitly illustrated).However, sensing system 102 may be implemented with other types ofstructures.

Additionally, while the sensing elements are illustrated with examplepositions, it will be appreciated that the sensing elements may bepositioned differently without departing from embodiments disclosedherein.

Turning to FIGS. 2B-2C, diagrams illustrating a magnet and sensingelement 202 in accordance with an embodiment are shown. As noted above,human interface device 104 may include magnet 230. Magnet 230 mayproject a magnetic field. In these figures, the magnetic field isillustrated using lines with arrows superimposed over the midpoints ofthe lines. The direction of the arrow indicates and orientation of thefield.

As seen in FIG. 2B, when magnet 230 is proximate (e.g., within apredetermined distance range, which may vary depending on the strengthof magnet 230 and sensitivity level of sensing element 202) to sensingelement 202, the magnetic field may be of sufficient strength to bemeasurable by sensing element 202. Sensing element 202 may utilize anysensing technology to measure the magnitude and/or the orientation ofthe magnetic field at its location. Due to the field distribution ofmagnet 230, the magnitude and orientation of the magnetic field at thelocation of sensing element 202 may be usable to identify, in part, thelocation and orientation of magnet 230.

For example, when magnet 230 is rotated as shown in FIG. 2C from theorientation as shown in FIG. 2B, the direction and/or magnitude of themagnetic field at the location of sensing element 202 may change. Byidentify the magnitude and orientation of the magnetic field at a numberof locations (e.g., corresponding to different sensing elements), theposition and orientation of magnet 230 may be identified.

To utilize the location and orientation of the magnet embedded in humaninterface device 104 to obtain user input, magnet 230 may bemechanically coupled to the actuatable elements and body 220. Turning toFIGS. 2D-2O, diagram illustrating mechanical coupling between magnet 230and various portions of human interface device 104 in accordance with anembodiment are shown.

In FIG. 2D, a diagram of a portion of human interface device 104 inaccordance with an embodiment is shown. The view may be looking upwardstowards an underside of buttons 222-224 shown in FIG. 2A.

To mechanically couple magnet 230 to buttons 222-224, scroll control226, and body 220, magnet 230, human interface device 104 may includetwo mechanical linkages.

A first mechanical linkage may connect magnet 230 to buttons 222-224 andscroll control 226 (not shown in FIG. 2D) and a second mechanicallinkage may connect the buttons 222-224 to body 220 (not shown in FIG.2D).

The first mechanical linkage may include cradle 232 and suspensionelements (e.g., 234). Cradle 232 may be implemented with a structure inwhich magnet 230 is positioned. For example, the structure may includetwo posts on opposite sides of magnet 230. Magnet 230 may be fixedlyattached (e.g., via adhesive or other means) to the posts. Each of theposts may be attached to a corresponding suspension element and thescroll control. For example, a top of each of the posts may be attachedto scroll control 226, and a bottom of each of the posts may be attachedto a different suspension element.

Suspension element 234 may be implemented with a post, bar, or othermechanical structure. The structure may extend from a bottom surface ofone of the buttons by a first distance (e.g., that is less than a seconddistance over which support element 236 extends, discussed below). Theextended end of the structure may attach to cradle 232.

Suspension element 234 may suspend cradle 232, magnet 230, and scrollcontrol 226 with respect to buttons 222-224 and body 220. Suspensionelement 234 may also facilitate rotation of magnet 230 in a first plane.For example, when force is applied to scroll control 226, the force maybe transmitted to the suspension elements attaching cradle 232 to thebuttons. The force may cause the suspension elements to flex therebyallowing for rotation of cradle 232 and magnet 230 (attached to cradle232). Suspension element 234 may be formed with an elastic material, andmay include specific mechanical features (e.g., thickness, reliefelements, etc.) to facilitate the flex and automatic return to a neutralposition (as illustrated in FIG. 2D) of suspension element 234.Consequently, when force is no longer applied to scroll control 226,magnet 230 may be automatically returned to the neutral position (atleast with respect to rotation in the first plane).

The second mechanical linkage may include support element 236. Supportelement 236 may be implemented with a post, bar, or other mechanicalstructure. The structure may extend from a bottom surface of one or bothof buttons 222-224 by a second distance that is greater than the firstdistance. As will be discussed in greater detail below, the extended endof support element 236 may be fixed to body 220 thereby suspendingbuttons 222-224, cradle 232, magnet 230, suspension element 234, andscroll control 226 with respect to body 220.

Support element 236 may also facilitate rotation of magnet 230 in asecond plane. For example, when force is applied to one of buttons222-224, the force may be transmitted to the support elements. The forcemay cause the support elements to flex thereby allowing for rotation ofcradle 232 and magnet 230 (attached to cradle 232) in the second plane.The first plane and the second plane may be substantially (e.g., withinga few degrees such as 3°) perpendicular or orthogonal to one another.

Support element 236 may be formed with an elastic material, and mayinclude specific mechanical features (e.g., thickness, relief elements,etc.) to facilitate the flex and automatic return to the neutralposition (as illustrated in FIG. 2D) of support element 236.Consequently, when force is no longer applied to buttons 222-224, magnet230 may be automatically returned to the neutral position (at least withrespect to rotation in the second plane).

To limit the degree of rotation in the first plane and provide a userwith sensory feedback for buttons 222-224, actuation elements (e.g.,238) may be positioned with buttons 222-224. The actuation elements maybe implemented with a post, bar, or other mechanical structure. Thestructure may extend from a bottom surface of one of buttons 222-224 bya thirds distance that is less than the first distance and the second.As will be discussed in greater detail below, the actuation elements maybe positioned with other structures to limit the degree of flex of thesupport elements and to generate auditory signals (e.g., clickingnoises) for users of human interface device 104. A haptic feedback mayalso be generated. For example, the haptic feedback may be sensed by anappendage used by the user to actuate it.

In FIG. 2D, the structures positioned with buttons 222-224 have beenillustrated using varying infill patterns. These infill patterns aremaintained when these same structures are illustrated in FIGS. 2E-2O.

To further clarify the operation of human interface device, crosssection views of human interface device 104 in accordance with anembodiment are shown in FIGS. 2F-2I and 2K-2O. Top view of humaninterface device 104 in accordance with an embodiment are shown in FIGS.2E and 2K to illustrate the locations of the planes in which the crossviews are taken.

Turning to FIG. 2E, a first top view diagram of human interface device104 in accordance with an embodiment is shown. As seen in FIG. 2E, thetop of human interface device 104 may be substantially covered withbuttons 222-224 and scroll control 226. To actuate buttons 222-224,force may be applied downward into the page on any portion of therespective button. The direction of rotation of magnet 230 maycorrespond to the respective buttons (e.g., opposite directions to oneanother)

To actuate scroll control 226, downward force may be applied to scrollcontrol 226. However, the location to which the force is applied maydictate the direction of the rotation of the magnet. With respect toFIG. 2E, if force is applied to the top half of scroll control 226, thenmagnet 230 may rotate in a first direction. In contrast, if force isapplied to the bottom half of scroll control 226, then magnet 230 mayrotate in the second direction.

In FIG. 2E, two planes (i.e., Plane A and Plane B) are illustrated usingrespective dashed lines. The diagrams shown in FIGS. 2F and 2H maycorrespond to Plane A, while the diagrams shown in FIGS. 2G and 2I maycorrespond to Plane B.

Turning to FIG. 2F, a first cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. In FIG. 2F, magnet230 is not part of the cross section. However, for illustrativepurposes, the outline of magnet 230 is superimposed.

As seen in FIG. 2F, when positioned with body 220, support element 236may suspend buttons 222-224 and actuation elements (e.g., 238) abovebody 220. Sensory feedback elements (e.g., 239) may be positionedbetween body 220 and corresponding actuation elements. As will beillustrated in FIG. 2H, actuation of either button may cause acorresponding actuation element to contact one of the sensory feedbackelements. The position of the sensory feedback elements may limit thedegree of rotation of magnet 230 and cause sensory feedback element 239to generate an auditory signal (e.g., a sound) when an actuation elementcontact it.

Sensory feedback element 239 may be implemented using a structure suchas a noise making component that generates a sound when pressure isapplied to one of its surfaces. The auditory signal may alert a user ofhuman interface device 104 that sufficient force has been applied to abutton for user input to be discerned by a data processing system.

To position support element 236, a positioning element 237 may bepositioned with one end of support element 236 and body 220. Positioningelement 237 may be implemented, for example, with a portion of plasticor other material in which the end of support element 236 may bepositioned.

Turning to FIG. 2G, a second cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. As seen in FIG.2G, while supported by support element 236, suspension elements (e.g.,234) may suspend cradle 232, magnet 230, and scroll control 226 abovebody 220. Consequently, when force is applied to either button (e.g.,222, 224), cradle 232 and magnet 230 may rotate (clockwise orcounterclockwise, depending on which button is pressed).

Turning to FIG. 2H, a third cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. The diagram shownin FIG. 2H may be similar to that shown in FIG. 2F. As seen in FIG. 2H,when force is applied to button 222, support element 236 may flexthereby allowing magnet 230 to rotate counterclockwise in this example.The direction of rotation may be clockwise while button 224 is pressed.

However, the degree of rotation may be limited by sensory feedbackelement 239 and actuation element 238. For example, the degree ofrotation may be limited to 6°. When the limit is reached, sensoryfeedback element 239 may both prevent additional limitation and mayprovide an auditory signal when the limit is reached. Sensory feedbackelement 239 may also provide a second auditory signal when actuationelement 238 rotates away from sensory feedback element 239 once pressureon button 222 is released. In this manner two auditory signals may beprovided to a user to guide use of human interface device 104.

Turning to FIG. 2I, a fourth cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. The diagram shownin FIG. 2I may be similar to that shown in FIG. 2G. As seen in FIG. 2G,when force is applied to button 222, cradle 232 and magnet 230 mayfreely rotate without impinging on body 220 or other structures.However, as noted with respect to FIG. 2I, the degree of rotation may belimited by sensory feedback element 239 and actuation element 238.

Turning to FIG. 2J, a second top view diagram of human interface device104 in accordance with an embodiment is shown. With respect to FIG. 2E,human interface device 104 has been rotate 90° counterclockwise in FIG.2J. In FIG. 2J, two planes (i.e., Plane E and Plane F) are illustratedusing respective dashed lines. The diagrams shown in FIGS. 2K, 2M-2N maycorrespond to Plane F, while the diagrams shown in FIGS. 2L and 2O maycorrespond to Plane E. Plane E may be aligned with one instance ofactuation element 238 while Plane F may be aligned with magnet 230.While not in Plane E, the outline of magnet 230 has been added to FIGS.2L and 2O using a dashed line for illustrative purposes.

Turning to FIG. 2K, a fifth cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. As seen in FIG.2K, when positioned with body 220, support element 236 may suspendbuttons 222-224, magnet 230, cradle 232, and scroll control 226 abovebody 220. For example, scroll control 226 may be positioned on cradle232, and may extend above buttons 222-224 thereby allowing a user toapply pressure to it. Cradle 232 may be attached to the buttons viasuspension elements (e.g., 234), which may be attached to respectivebuttons.

By being suspended, magnet 230 may be free to rotate clockwise orcounterclockwise depending on the portion of scroll control 226 to whichforce is applied.

Turning to FIG. 2L, a sixth cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. As seen in FIG.2L, cradle 232 may be attached to the buttons via suspension elements(e.g., 234), which may be attached to respective buttons. Consequently,magnet 230 may be suspended via this mechanical linkage.

Turning to FIG. 2M, a seventh cross section diagram of human interfacedevice 104 in accordance with an embodiment is shown. The diagram shownin FIG. 2M may be similar to that shown in FIG. 2K. As seen in FIG. 2M,when force is applied to a front portion of scroll control 226,suspension element 234 (shown in FIG. 2O) may flex thereby allowingmagnet 230 to rotate counterclockwise in this example. The direction ofrotation may be clockwise if force is applied to the back side of scrollcontrol 226.

The degree of rotation of magnet 230 may be limited by the surface ofthe buttons that may form the rest of the top surface of human interfacedevice 104. However, the degree of rotation in this plane may be greaterthan the degree of rotation in the plane shown in FIG. 2G.

For example, turning to FIG. 2N, an eighth cross section diagram ofhuman interface device 104 in accordance with an embodiment is shown. Asseen in FIG. 2N, the degree of rotation of magnet 230 may be greater inthis plane than that shown in FIG. 2G. For example, the degree ofrotation may be up to 10 degrees. As will be discussed with respect toFIG. 3 , the degree of rotation may be used to identify different typesof user input that a user is attempting to convey through actuation ofscroll control 226.

Additionally, as seen in FIG. 2N, magnet 230 is suspended throughsuspension element 234. Turning to FIG. 2O, a nineth cross sectiondiagram of human interface device 104 in accordance with an embodimentis shown. As seen in FIG. 2O, when force is applied to scroll control226, suspension element 234 may flex thereby allowing cradle 232 andmagnet 230 attached to it to rotate. As noted above, the degree ofrotation in this dimension may only be limited by the surface of thebuttons (e.g., 222, 224). Thus, for example, magnet 230 may rotate upto, for example, to 10° in this plane (in contrast to the rotation of 6°in the other plane).

It will be appreciated that the extent of the rotation in each of theplanes may vary without departing from embodiments disclosed herein.

While FIGS. 2A-2O have been illustrated as including specific numbersand types of components, it will be appreciated that any of the devicesdepicted therein may fewer, additional, and/or different componentswithout departing from embodiments disclosed herein.

As discussed above, the components of FIG. 1 may perform various methodsto provide computer implemented services using user input. FIG. 3illustrates a method that may be performed by the components of FIG. 1 .In the diagram discussed below and shown in FIG. 3 , any of theoperations may be repeated, performed in different orders, and/orperformed in parallel with or in a partially overlapping in time mannerwith other operations.

Turning to FIG. 3 , a flow diagram illustrating a method of obtaininguser input in accordance with an embodiment is shown. The method may beperformed by data processing system 100, sensing system 102, humaninterface device 104, and/or other components of the system of FIG. 1 .

At operation 300, an orientation and/or position of a magnet in a humaninterface device is sensed. The orientation and/or positioned may besensed by (i) obtaining measurements of a magnetic field emanating fromthe magnet, and (ii) computing the position and/or orientation based onthe measurements.

At operation 302, a command is identified based on the orientationand/or position of the magnet. The command may be identified, forexample, by comparing the position and/or orientation to a past positionand/or orientation.

The command may be identified by (i) identifying an orientation of themagnet in a first plane, (ii) identifying an orientation of the magnetin the second plane, and (iii) identifying the location of the magnetwith respect to a sensing system.

The orientation of the magnet in the first plane may be used to aperform a lookup based on a degree and direction of rotation of themagnet in the first plane. For example, if positively rotated by anamount exceeding a threshold, then the command may be identified as aleft click of a pointing device. In another example, if negativelyrotated by the amount exceeding the threshold, then the command may beidentified as a right click of the pointing device.

The orientation of the magnet in the second plane may be used to aperform a lookup based on a degree and direction of rotation of themagnet in the second plane. For example, if positively rotated by anamount exceeding a threshold, then the command may be identified asscrolling in a first direction and a rate of the scrolling may beidentified (e.g., scaled) based on a degree of excess of the rotationbeyond the threshold. In another example, if negatively rotated by anamount exceeding the threshold, then the command may be identified asscrolling in a second direction (opposite of the first, or anotherdirection) and a rate of the scrolling may be identified (e.g., scaled)based on a degree of excess of the rotation beyond the threshold.

The thresholds of rotation for the two planes may be similar ordifferent. For example, the threshold for the second plane may besmaller than the first (e.g., thereby providing for a larger scalingrange of the rate of scrolling), or may be larger (e.g., therebylimiting the scaling range of the rate of scrolling).

The command may also be identified by, for example, using the positionof the human interface device to identify a change in focus of the user(e.g., a mouse location on a display). The combination of the focus ofthe user and the user input (e.g., based on the user clicking a button,depressing a scroll wheel, etc.) may then be used to identify, forexample, a function of an application or other type of functionality tobe initiated or otherwise performed.

At operation 304, the command is performed. The command may beperformed, for example, by an operating system passing through orotherwise providing information regarding the command to an applicationor other consumer of the user input. The consumer may then take actionbased on the command.

For example, a data processing system may host an operating system,drivers, and/or other executing entities that may take responsibilityfor translating signals/data from a sensing system into commands orother types of user input.

The method may end following operation 304.

Thus, using the method illustrated in FIG. 3 , embodiments disclosedherein may facilitate obtaining user input and using the user input toprovide computer implemented services. By obtaining the user input via apassive device (at least with respect to user input), a human interfacedevice in accordance with embodiments disclosed herein may be of lowercomplexity thereby improving the likelihood of continued operation, maynot be dependent on power sources, may not require as large of physicalloads to be exerted by users, and may provide other benefits.

Any of the components illustrated in FIGS. 1-2O may be implemented withone or more computing devices. Turning to FIG. 4 , a block diagramillustrating an example of a data processing system (e.g., a computingdevice) in accordance with an embodiment is shown. For example, system400 may represent any of data processing systems described aboveperforming any of the processes or methods described above. System 400can include many different components. These components can beimplemented as integrated circuits (ICs), portions thereof, discreteelectronic devices, or other modules adapted to a circuit board such asa motherboard or add-in card of the computer system, or as componentsotherwise incorporated within a chassis of the computer system. Notealso that system 400 is intended to show a high level view of manycomponents of the computer system. However, it is to be understood thatadditional components may be present in certain implementations andfurthermore, different arrangement of the components shown may occur inother implementations. System 400 may represent a desktop, a laptop, atablet, a server, a mobile phone, a media player, a personal digitalassistant (PDA), a personal communicator, a gaming device, a networkrouter or hub, a wireless access point (AP) or repeater, a set-top box,or a combination thereof. Further, while only a single machine or systemis illustrated, the term “machine” or “system” shall also be taken toinclude any collection of machines or systems that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

In one embodiment, system 400 includes processor 401, memory 403, anddevices 405-407 via a bus or an interconnect 410. Processor 401 mayrepresent a single processor or multiple processors with a singleprocessor core or multiple processor cores included therein.

Processor 401 may represent one or more general-purpose processors suchas a microprocessor, a central processing unit (CPU), or the like. Moreparticularly, processor 401 may be a complex instruction set computing(CISC) microprocessor, reduced instruction set computing (RISC)microprocessor, very long instruction word (VLIW) microprocessor, orprocessor implementing other instruction sets, or processorsimplementing a combination of instruction sets. Processor 401 may alsobe one or more special-purpose processors such as an applicationspecific integrated circuit (ASIC), a cellular or baseband processor, afield programmable gate array (FPGA), a digital signal processor (DSP),a network processor, a graphics processor, a network processor, acommunications processor, a cryptographic processor, a co-processor, anembedded processor, or any other type of logic capable of processinginstructions.

Processor 401, which may be a low power multi-core processor socket suchas an ultra-low voltage processor, may act as a main processing unit andcentral hub for communication with the various components of the system.Such processor can be implemented as a system on chip (SoC). Processor401 is configured to execute instructions for performing the operationsdiscussed herein. System 400 may further include a graphics interfacethat communicates with optional graphics subsystem 404, which mayinclude a display controller, a graphics processor, and/or a displaydevice.

Processor 401 may communicate with memory 403, which in one embodimentcan be implemented via multiple memory devices to provide for a givenamount of system memory. Memory 403 may include one or more volatilestorage (or memory) devices such as random access memory (RAM), dynamicRAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or other typesof storage devices. Memory 403 may store information including sequencesof instructions that are executed by processor 401, or any other device.For example, executable code and/or data of a variety of operatingsystems, device drivers, firmware (e.g., input output basic system orBIOS), and/or applications can be loaded in memory 403 and executed byprocessor 401. An operating system can be any kind of operating systems,such as, for example, Windows® operating system from Microsoft®, MacOS®/iOS® from Apple, Android® from Google®, Linux®, Unix®, or otherreal-time or embedded operating systems such as VxWorks.

System 400 may further include IO devices such as devices (e.g., 405,406, 407, 408) including network interface device(s) 405, optional inputdevice(s) 406, and other optional IO device(s) 407. Network interfacedevice(s) 405 may include a wireless transceiver and/or a networkinterface card (NIC). The wireless transceiver may be a WiFitransceiver, an infrared transceiver, a Bluetooth transceiver, a WiMaxtransceiver, a wireless cellular telephony transceiver, a satellitetransceiver (e.g., a global positioning system (GPS) transceiver), orother radio frequency (RF) transceivers, or a combination thereof. TheNIC may be an Ethernet card.

Input device(s) 406 may include a mouse, a touch pad, a touch sensitivescreen (which may be integrated with a display device of optionalgraphics subsystem 404), a pointer device such as a stylus, and/or akeyboard (e.g., physical keyboard or a virtual keyboard displayed aspart of a touch sensitive screen). For example, input device(s) 406 mayinclude a touch screen controller coupled to a touch screen. The touchscreen and touch screen controller can, for example, detect contact andmovement or break thereof using any of a plurality of touch sensitivitytechnologies, including but not limited to capacitive, resistive,infrared, and surface acoustic wave technologies, as well as otherproximity sensor arrays or other elements for determining one or morepoints of contact with the touch screen.

IO devices 407 may include an audio device. An audio device may includea speaker and/or a microphone to facilitate voice-enabled functions,such as voice recognition, voice replication, digital recording, and/ortelephony functions. Other IO devices 407 may further include universalserial bus (USB) port(s), parallel port(s), serial port(s), a printer, anetwork interface, a bus bridge (e.g., a PCI-PCI bridge), sensor(s)(e.g., a motion sensor such as an accelerometer, gyroscope, amagnetometer, a light sensor, compass, a proximity sensor, etc.), or acombination thereof. IO device(s) 407 may further include an imagingprocessing subsystem (e.g., a camera), which may include an opticalsensor, such as a charged coupled device (CCD) or a complementarymetal-oxide semiconductor (CMOS) optical sensor, utilized to facilitatecamera functions, such as recording photographs and video clips. Certainsensors may be coupled to interconnect 410 via a sensor hub (not shown),while other devices such as a keyboard or thermal sensor may becontrolled by an embedded controller (not shown), dependent upon thespecific configuration or design of system 400.

To provide for persistent storage of information such as data,applications, one or more operating systems and so forth, a mass storage(not shown) may also couple to processor 401. In various embodiments, toenable a thinner and lighter system design as well as to improve systemresponsiveness, this mass storage may be implemented via a solid statedevice (SSD). However, in other embodiments, the mass storage mayprimarily be implemented using a hard disk drive (HDD) with a smalleramount of SSD storage to act as a SSD cache to enable non-volatilestorage of context state and other such information during power downevents so that a fast power up can occur on re-initiation of systemactivities. Also a flash device may be coupled to processor 401, e.g.,via a serial peripheral interface (SPI). This flash device may providefor non-volatile storage of system software, including a basicinput/output software (BIOS) as well as other firmware of the system.

Storage device 408 may include computer-readable storage medium 409(also known as a machine-readable storage medium or a computer-readablemedium) on which is stored one or more sets of instructions or software(e.g., processing module, unit, and/or processing module/unit/logic 428)embodying any one or more of the methodologies or functions describedherein. Processing module/unit/logic 428 may represent any of thecomponents described above. Processing module/unit/logic 428 may alsoreside, completely or at least partially, within memory 403 and/orwithin processor 401 during execution thereof by system 400, memory 403and processor 401 also constituting machine-accessible storage media.Processing module/unit/logic 428 may further be transmitted or receivedover a network via network interface device(s) 405.

Computer-readable storage medium 409 may also be used to store somesoftware functionalities described above persistently. Whilecomputer-readable storage medium 409 is shown in an exemplary embodimentto be a single medium, the term “computer-readable storage medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The terms“computer-readable storage medium” shall also be taken to include anymedium that is capable of storing or encoding a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of embodiments disclosed herein. The term“computer-readable storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, and optical andmagnetic media, or any other non-transitory machine-readable medium.

Processing module/unit/logic 428, components and other featuresdescribed herein can be implemented as discrete hardware components orintegrated in the functionality of hardware components such as ASICS,FPGAs, DSPs or similar devices. In addition, processingmodule/unit/logic 428 can be implemented as firmware or functionalcircuitry within hardware devices. Further, processing module/unit/logic428 can be implemented in any combination hardware devices and softwarecomponents.

Note that while system 400 is illustrated with various components of adata processing system, it is not intended to represent any particulararchitecture or manner of interconnecting the components; as suchdetails are not germane to embodiments disclosed herein. It will also beappreciated that network computers, handheld computers, mobile phones,servers, and/or other data processing systems which have fewercomponents or perhaps more components may also be used with embodimentsdisclosed herein.

Some portions of the preceding detailed descriptions have been presentedin terms of algorithms and symbolic representations of operations ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as those set forth in the claims below, refer to the actionand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

Embodiments disclosed herein also relate to an apparatus for performingthe operations herein. Such a computer program is stored in anon-transitory computer readable medium. A non-transitorymachine-readable medium includes any mechanism for storing informationin a form readable by a machine (e.g., a computer). For example, amachine-readable (e.g., computer-readable) medium includes a machine(e.g., a computer) readable storage medium (e.g., read only memory(“ROM”), random access memory (“RAM”), magnetic disk storage media,optical storage media, flash memory devices).

The processes or methods depicted in the preceding figures may beperformed by processing logic that comprises hardware (e.g. circuitry,dedicated logic, etc.), software (e.g., embodied on a non-transitorycomputer readable medium), or a combination of both. Although theprocesses or methods are described above in terms of some sequentialoperations, it should be appreciated that some of the operationsdescribed may be performed in a different order. Moreover, someoperations may be performed in parallel rather than sequentially.

Embodiments disclosed herein are not described with reference to anyparticular programming language. It will be appreciated that a varietyof programming languages may be used to implement the teachings ofembodiments disclosed herein.

In the foregoing specification, embodiments have been described withreference to specific exemplary embodiments thereof. It will be evidentthat various modifications may be made thereto without departing fromthe broader spirit and scope of the embodiments disclosed herein as setforth in the following claims. The specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense.

What is claimed is:
 1. A human interface device, comprising: a body movable though application of force by a user; a magnet positioned within the body, the magnet emanating a magnetic field distribution that extends into an ambient environment that is external and proximate to the body of the human interface device; a button mechanically coupled to the magnet via a second mechanical linkage, the second mechanical linkage being adapted to rotate the magnet in a first plane when the button is actuated by the user; and a scroll control mechanically coupled to the magnet via a first mechanical linkage, the first mechanical linkage being adapted to rotate the magnet in a second plane when the scroll control is actuated by the user.
 2. The human interface device of claim 1, wherein the human interface device is a passive device without an internal power source and without an external power source.
 3. The human interface device of claim 1, wherein the first plane and the second plane are not coplanar or parallel.
 4. The human interface device of claim 3, wherein the first plane is substantially perpendicular to the second plane.
 5. The human interface device of claim 4, wherein the first plane is substantially orthogonal to the second plane.
 6. The human interface device of claim 1, wherein the second mechanical linkage comprises: a support element extending from the button to the body, the support element suspending the button above the body by a first distance, and the support element flexing when the button is actuated by the user to rotate the magnet in the first plane.
 7. The human interface device of claim 6, wherein the first mechanical linkage comprises: a cradle that houses the magnet; and a suspension element extending from the button toward the body by a second distance that is smaller than the first distance and positioned to suspend the cradle between the button and body.
 8. The human interface device of claim 7, wherein the scroll control is directly attached to the cradle, and the suspension element flexing when the scroll control is actuated by the user to rotate the magnet in the second plane.
 9. The human interface device of claim 8, further comprising: a second button mechanically coupled to the magnet via the second mechanical linkage, the second mechanical linkage rotating the magnet in a first direction when the button is actuated and a second direction when the second button is actuated, wherein the second mechanical linkage is further adapted to return the magnet to a predetermined position while neither of the button and the second button are actuated.
 10. The human interface device of claim 9, wherein the first mechanical linkage is further adapted to return the magnet to the predetermined position while the scroll control is not actuated.
 11. The human interface device of claim 9, wherein the button, the scroll control, and the second button a positioned on a top surface of the human interface device.
 12. The human interface device of claim 11, wherein the suspension element is adapted to flex to a first degree, the support element is adapted to flex to a second degree, and the first degree is larger than the second degree.
 13. The human interface device of claim 12, further comprising: an actuation element extending from the button toward the body; and a sensory feedback element positioned between the body and the actuation element, the actuation element adapted to: generate an auditory signal and/or haptic when suspension element flexes to the first degree, and limit an extent of rotation of the magnet in the first plane.
 14. The human interface device of claim 13, wherein the extent of rotation of the magnet in the second plane is limited by an extent to which the scroll control is exposed above the button and the second button.
 15. A user input system, comprising: a human interface device comprising: a body movable though application of force by a user; a magnet positioned within the body, the magnet emanating a magnetic field distribution that extends into an ambient environment that is external and proximate to the body of the human interface device; a button mechanically coupled to the magnet via a second mechanical linkage, the second mechanical linkage being adapted to rotate the magnet in a first plane when the button is actuated by the user; and a scroll control mechanically coupled to the magnet via a first mechanical linkage, the first mechanical linkage being adapted to rotate the magnet in a second plane when the scroll control is actuated by the user; and a sensing system adapted to measure the magnetic field distribution emanating from the magnet.
 16. The user input system of claim 15, wherein the second mechanical linkage comprises: a support element extending from the button to the body, the support element suspending the button above the body by a first distance, and the support element flexing when the button is actuated by the user to rotate the magnet in the first plane.
 17. The user input system of claim 16, wherein the first mechanical linkage comprises: a cradle that houses the magnet; and a suspension element extending from the button toward the body by a second distance that is smaller than the first distance and positioned to suspend the cradle between the button and body.
 18. A data processing system, comprising: a human interface device comprising: a body movable though application of force by a user; a magnet positioned within the body, the magnet emanating a magnetic field distribution that extends into an ambient environment that is external and proximate to the body of the human interface device; a button mechanically coupled to the magnet via a second mechanical linkage, the second mechanical linkage being adapted to rotate the magnet in a first plane when the button is actuated by the user; and a scroll control mechanically coupled to the magnet via a first mechanical linkage, the first mechanical linkage being adapted to rotate the magnet in a second plane when the scroll control is actuated by the user; and a sensing system adapted to measure the magnetic field distribution emanating from the magnet; a processor; and a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations for obtaining user input using data obtained from the sensing system.
 19. The data processing system of claim 18, wherein the second mechanical linkage comprises: a support element extending from the button to the body, the support element suspending the button above the body by a first distance, and the support element flexing when the button is actuated by the user to rotate the magnet in the first plane.
 20. The data processing system of claim 19, wherein the first mechanical linkage comprises: a cradle that houses the magnet; and a suspension element extending from the button toward the body by a second distance that is smaller than the first distance and positioned to suspend the cradle between the button and body. 